package org.istt.service;

import java.util.ArrayList;
import java.util.List;

import javax.jws.WebService;

import org.istt.model.CategoryBean;
import org.istt.model.FileServiceBean;
/**
 * Provide public APIs that allows interactive with Onegate's DB via SOAP service
 * @author ndtho
 * http://<IP>:<PORT>/onegate/services/FileService?wsdl
 */
@WebService
public interface FileServiceManager {

	/***
	 * Public API that allows search status of files 
	 * @param fileCode the code of file
	 * @param sender the name of sender
	 * @return list found files
	 */
	public List<FileServiceBean> searchFile(String pageNum, String fileCode, String sender, String categoryCode, String fromDate, String toDate);

	/***
	 * Public API that allows add new Construction_Permit
	 * CAP GIAY PHEP XAY DUNG
	 * @param contactName
	 * @param email
	 * @param categoryType
	 * @param investor
	 * @param representative
	 * @param position
	 * @param contactAdd
	 * @param buildingNo
	 * @param street
	 * @param province
	 * @param district
	 * @param city
	 * @param phone
	 * @param lotNumber
	 * @param lotArea
	 * @param lotAdd
	 * @param lotStreet
	 * @param lotProvince
	 * @param lotDistrict
	 * @param lotCity
	 * @param lotOrigin
	 * @param contentProjectType
	 * @param contentProjectLevel
	 * @param contentArea
	 * @param contentTotalAreas
	 * @param contentBuildingHeight
	 * @param contentNumberOfFloor
	 * @param designer
	 * @param designerAdd
	 * @param designerPhone
	 * @param designReviewer
	 * @param reviewerPhone
	 * @param reviewerAdd
	 * @param reviewerLicenseNo
	 * @param reviewerLicenseDate
	 * @param demolitionSolution
	 * @param completingTime
	 * @return
	 */
	public ArrayList<String> submitForm_Cap_GPXD(String contactName, String email,
			String categoryType, String investor, String representative,
			String position, String contactAdd, String buildingNo,
			String street, String province, String district, String city,
			String phone, String lotNumber, String lotArea, String lotAdd,
			String lotStreet, String lotProvince, String lotDistrict,
			String lotCity, String lotOrigin, String contentProjectType,
			String contentProjectLevel, String contentArea,
			String contentTotalAreas, String contentBuildingHeight,
			String contentNumberOfFloor, String designer, String designerAdd,
			String designerPhone, String designReviewer, String reviewerPhone,
			String reviewerAdd, String reviewerLicenseNo,
			String reviewerLicenseDate, String demolitionSolution,
			String completingTime,String[] fileAttachments, String fileCode);
	
	/***
	 * Public API that allows add new Construction_Permit_Renew
	 * GIA HAN GIAP PHEP XAY DUNG
	 * @param contactName
	 * @param email
	 * @param fullname
	 * @param idcardNumber
	 * @param idcardUnit
	 * @param idcardDate
	 * @param address
	 * @param buildingNo
	 * @param street
	 * @param province
	 * @param district
	 * @param phone
	 * @param prjOwner
	 * @param prjAdd
	 * @param prjStreet
	 * @param prjProvince
	 * @param prjDistrict
	 * @param oldProvider
	 * @param conPermitNumber
	 * @param conPermitDate
	 * @param reasonRenew
	 * @return
	 */
	public ArrayList<String> submitForm_GIAHAN_GPXD(String contactName, String email,
			String fullname, String idcardNumber, String idcardUnit,
			String idcardDate, String address, String buildingNo,
			String street, String province, String district, String phone, 
			String prjOwner, String prjAdd,	String prjStreet, String prjProvince, String prjDistrict,
			String oldProvider, String conPermitNumber, String conPermitDate,
			String reasonRenew,String[] fileAttachments, String fileCode);
	
 
	/***
	 * DIEU CHINH GIAY PHEP XAY DUNG
	 * @param contactName
	 * @param email
	 * @param fullname
	 * @param idcardNumber
	 * @param idcardUnit
	 * @param idcardDate
	 * @param address
	 * @param buildingNo
	 * @param street
	 * @param province
	 * @param district
	 * @param phone
	 * @param prjOwner
	 * @param prjAdd
	 * @param prjStreet
	 * @param prjProvince
	 * @param prjDistrict
	 * @param oldProvider
	 * @param conPermitNumber
	 * @param conPermitDate
	 * @param conPermitRenewNo
	 * @param adjustContent
	 * @param completingTime
	 * @return
	 */
	public ArrayList<String> submitForm_DIEUCHINH_GPXD(String contactName, String email,
			String fullname, String idcardNumber, String idcardUnit,
			String idcardDate, String address, String buildingNo,
			String street, String province, String district, String phone,
			String prjOwner, String prjAdd, String prjStreet,
			String prjProvince, String prjDistrict, String oldConPermitProvider,
			String conPermitNumber,String conPermitDate, String conPermitRenewNo
			 ,String adjustContent, String completingTime,String[] fileAttachments, String fileCode);
	/***
	 * DON XIN CAP CHUNG CHI HANH NGHE
	 * @param contactName
	 * @param email
	 * @param fullname
	 * @param sex
	 * @param birthday
	 * @param placeOfBirth
	 * @param national
	 * @param idcardNumber
	 * @param idcardUnit
	 * @param idcardDate
	 * @param address
	 * @param education
	 * @param certificate
	 * @param experienceYear
	 * @param designConstructionPlanning
	 * @param designArchitectural
	 * @param constructionSurvey
	 * @param designProject
	 * @param leaderOfProjects
	 * @param designOrImplement
	 * @param subject
	 * @param content
	 * @return
	 */
	public ArrayList<String> submitForm_CM_CCHN(String contactName, String email, String subject,
			String fullname, String sex, String birthday,
			String placeOfBirth, String national, String idcardNumber,
			String idcardUnit, String idcardDate, String address,
			String education, String certificate, String experienceYear,
			String designConstructionPlanning, String designArchitectural,
			String constructionSurvey, String designProject,
			String leaderOfProjects, String designOrImplement, 
			String content,String[] fileAttachments, String fileCode);
	
	// CAP LAI CCHN
	public ArrayList<String> submitForm_CL_CCHN(String contactName, String email,String subject,
			String fullname, String sex, String birthday, String placeOfBirth, String national, 
			String idcardNumber, String idcardUnit, String idcardDate, 
			String address, String level, String diploma, String certificate, String contentOfOldCer, 
			String dateOfOldCer, String contentOfNewCer, String reasonOfNewCer,String[] fileAttachments, String fileCode);
	
	// BO SUNG CCHN
	public ArrayList<String> submitForm_BS_CCHN(String contactName, String email,String subject,
			String fullname, String sex, String birthday, String placeOfBirth,
			String national, String idcardNumber, String idcardDate, String idcardUnit,
			String address, String education,
			String certificate, String experienceYear,
			String designConstructionPlanning, String designArchitectural,
			String constructionSurvey, String designProject,
			String leaderOfProjects, String designOrImplement, 
			String content,String[] fileAttachments, String fileCode);
	
	// CAP CHUNG CHI MOI GIOI BDS
	public ArrayList<String> submitForm_CM_CCMGBDS(String contactName, String email,
			String fullname, String birthday, String placeOfBirth,
			String national, String idcardNumber, String idcardDate,
			String idcardUnit, String address, String education,
			String certificate, String eduCenter, String eduCenterAddress,String[] fileAttachments, String fileCode);

	// CAP LAI CHUNG CHI MOI GIOI BDS
	public ArrayList<String> submitForm_CL_CCMGBDS(String contactName, String email,
			String fullname, String birthday, String placeOfBirth,
			String national, String idcardNumber, String idcardDate,
			String idcardUnit, String address, String education,
			String certificate, String eduCenter, String eduCenterAddress,String[] fileAttachments, String fileCode);

	// CAP MOI CHUNG CHI DINH GIA BDS
	public ArrayList<String> submitForm_CM_CCDGBDS(String contactName, String email,
			String fullname, String birthday, String placeOfBirth,
			String national, String idcardNumber, String idcardDate,
			String idcardUnit, String address, String education,
			String certificate, String eduCenter, String eduCenterAddress,String[] fileAttachments, String fileCode);

	// CAP LAI CHUNG CHI DINH GIA BDS
	public ArrayList<String> submitForm_CL_CCDGBDS(String contactName, String email,
			String fullname, String birthday, String placeOfBirth,
			String national, String idcardNumber, String idcardDate,
			String idcardUnit, String address, String education,
			String certificate, String eduCenter, String eduCenterAddress,String[] fileAttachments, String fileCode);
	
	public List<CategoryBean> loadCategories();
}
